Ссылки по теме

*   [Стандарты создания пакетов для Arch](/index.php/%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D1%8B_%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_Arch "Стандарты создания пакетов для Arch")
*   [Пользовательский репозиторий Arch](/index.php/%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9_%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B9_Arch "Пользовательский репозиторий Arch")
*   [Создание пакетов](/index.php/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2 "Создание пакетов")
*   [Сборка ядра через ABS](/index.php/Kernels_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.9A.D0.BE.D0.BC.D0.BF.D0.B8.D0.BB.D1.8F.D1.86.D0.B8.D1.8F_.D1.8F.D0.B4.D1.80.D0.B0 "Kernels (Русский)")
*   [makepkg (Русский)](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)")
*   [Официальные репозитории](/index.php/%D0%9E%D1%84%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B8 "Официальные репозитории")
*   [pacman (Русский)](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)")
*   [PKGBUILD (Русский)](/index.php/PKGBUILD_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "PKGBUILD (Русский)")
*   [Patching in ABS](/index.php/Patching_in_ABS "Patching in ABS")

**Состояние перевода:** На этой странице представлен перевод статьи [Arch Build System](/index.php/Arch_Build_System "Arch Build System"). Дата последней синхронизации: 6 сентября 2015\. Вы можете [помочь](/index.php/ArchWiki_Translation_Team_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "ArchWiki Translation Team (Русский)") синхронизировать перевод, если в английской версии произошли [изменения](https://wiki.archlinux.org/index.php?title=Arch_Build_System&diff=0&oldid=398463).

В этой статье представлен обзор системы сборки Arch (сокращенно ABS) и пошаговое руководство для начинающих. Это не исчерпывающее руководство. Если вам нужна дополнительная информация, обратитесь к man страницам.

**Примечание:** Дерево ABS синхронизируется один раз в день, поэтому оно может не содержать то, что уже доступно в репозиториях.

## Contents

*   [1 Что такое Arch Build System?](#.D0.A7.D1.82.D0.BE_.D1.82.D0.B0.D0.BA.D0.BE.D0.B5_Arch_Build_System.3F)
    *   [1.1 Что такое система наподобие портов?](#.D0.A7.D1.82.D0.BE_.D1.82.D0.B0.D0.BA.D0.BE.D0.B5_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D0.B0_.D0.BD.D0.B0.D0.BF.D0.BE.D0.B4.D0.BE.D0.B1.D0.B8.D0.B5_.D0.BF.D0.BE.D1.80.D1.82.D0.BE.D0.B2.3F)
    *   [1.2 ABS имеет такую же концепцию](#ABS_.D0.B8.D0.BC.D0.B5.D0.B5.D1.82_.D1.82.D0.B0.D0.BA.D1.83.D1.8E_.D0.B6.D0.B5_.D0.BA.D0.BE.D0.BD.D1.86.D0.B5.D0.BF.D1.86.D0.B8.D1.8E)
    *   [1.3 Обзор ABS](#.D0.9E.D0.B1.D0.B7.D0.BE.D1.80_ABS)
*   [2 Зачем мне использовать ABS?](#.D0.97.D0.B0.D1.87.D0.B5.D0.BC_.D0.BC.D0.BD.D0.B5_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D1.8C_ABS.3F)
*   [3 Как использовать ABS](#.D0.9A.D0.B0.D0.BA_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D1.8C_ABS)
    *   [3.1 Установка инструментов](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.B8.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2)
    *   [3.2 /etc/abs.conf](#.2Fetc.2Fabs.conf)
    *   [3.3 Дерево ABS](#.D0.94.D0.B5.D1.80.D0.B5.D0.B2.D0.BE_ABS)
        *   [3.3.1 Загрузка дерева ABS](#.D0.97.D0.B0.D0.B3.D1.80.D1.83.D0.B7.D0.BA.D0.B0_.D0.B4.D0.B5.D1.80.D0.B5.D0.B2.D0.B0_ABS)
    *   [3.4 /etc/makepkg.conf](#.2Fetc.2Fmakepkg.conf)
        *   [3.4.1 Задание переменной PACKAGER в /etc/makepkg.conf](#.D0.97.D0.B0.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D0.BE.D0.B9_PACKAGER_.D0.B2_.2Fetc.2Fmakepkg.conf)
            *   [3.4.1.1 Отобразить все пакеты (включая пакеты из AUR)](#.D0.9E.D1.82.D0.BE.D0.B1.D1.80.D0.B0.D0.B7.D0.B8.D1.82.D1.8C_.D0.B2.D1.81.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D1.8B_.28.D0.B2.D0.BA.D0.BB.D1.8E.D1.87.D0.B0.D1.8F_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D1.8B_.D0.B8.D0.B7_AUR.29)
            *   [3.4.1.2 Отобразить только пакеты из репозиториев](#.D0.9E.D1.82.D0.BE.D0.B1.D1.80.D0.B0.D0.B7.D0.B8.D1.82.D1.8C_.D1.82.D0.BE.D0.BB.D1.8C.D0.BA.D0.BE_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D1.8B_.D0.B8.D0.B7_.D1.80.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.82.D0.BE.D1.80.D0.B8.D0.B5.D0.B2)
    *   [3.5 Создание каталога для сборки](#.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BA.D0.B0.D1.82.D0.B0.D0.BB.D0.BE.D0.B3.D0.B0_.D0.B4.D0.BB.D1.8F_.D1.81.D0.B1.D0.BE.D1.80.D0.BA.D0.B8)
    *   [3.6 Сборка пакета](#.D0.A1.D0.B1.D0.BE.D1.80.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.B0)
        *   [3.6.1 fakeroot](#fakeroot)
    *   [3.7 Оставлять модифицированные пакеты](#.D0.9E.D1.81.D1.82.D0.B0.D0.B2.D0.BB.D1.8F.D1.82.D1.8C_.D0.BC.D0.BE.D0.B4.D0.B8.D1.84.D0.B8.D1.86.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.BD.D1.8B.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D1.8B)
*   [4 Другие инструменты](#.D0.94.D1.80.D1.83.D0.B3.D0.B8.D0.B5_.D0.B8.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D1.8B)

## Что такое Arch Build System?

Arch Build System — это система *наподобие портов* для сборки и пакетирования программ из исходного кода. [Pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)") является специализированным инструментом в Arch для управления бинарными пакетами (включая пакеты, собираемые с помощью ABS), а ABS — это набор инструментов для компиляции исходников в пакеты `.pkg.tar.xz`, которые уже можно устанавливать.

### Что такое система наподобие портов?

*Порты* — это система используемая в *BSD для автоматизации процесса сборки программ из исходного кода. Система использует *порт* для загрузки, распаковки, исправления, компиляции и установки нужной программы. *Порт* — это всего лишь небольшой каталог на компьютере пользователя, название которого соответствует устанавливаемой программе. Этот каталог содержит несколько файлов, которые содержат инструкции по сборке и установке программ из исходных кодов. Таким образом для установки программы всего лишь нужно выполнить `make` или `make install clean` находясь в каталоге порта.

### ABS имеет такую же концепцию

ABS состоит из дерева каталогов (дерева ABS), которое находится в `/var/abs`. Это дерево содержит множество подкаталогов, распределённых по названиям репозиториев и названых в соответствии с названием пакета. Это дерево представляет собой (но не содержит) все *официальные программы Arch*, получаемые через систему SVN. Вы можете воспринимать каждый такой подкаталог как 'ABS', хотя большинство называют их 'портами'. Эти ABS (или подкаталоги) не содержат ни пакета с программой, ни исходных кодов, а только файл [PKGBUILD](/index.php/PKGBUILD_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "PKGBUILD (Русский)") (и иногда другие файлы). PKGBUILD — это просто Bash скрипт для сборки — текстовый файл, содержащий инструкции по компиляции и упаковке пакета, а также URL соответствующего tarball архива с **исходниками**, который нужно скачать. (Самым главным компонентом ABS являются PKGBUILDы.) Выполнив команду [makepkg](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)") в ABS каталоге, программа сначала компилируется, а затем *упаковывается* внутри каталога сборки. Теперь вы можете воспользоваться [pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)") (пакетным менеджером Arch Linux), для установки, обновления или удаления вашего нового пакета.

### Обзор ABS

'ABS' можно использовать в качестве обобщающего термина, поскольку она неразрывно связана с некоторыми другими компонентами. Несмотря на то, что это технически неверно, под 'ABS' может подразумеваться набор следующих компонентов:

	Дерево ABS

	Структура каталогов ABS. Каталоги синхронизируется с SVN и расположены в `/var/abs/` на вашем (локальном) компьютере. Дерево содержит много подкаталогов, названных в соответствии со всеми доступными официальными программами Arch Linux из репозиториев, которые прописаны в `/etc/abs.conf`, но не сами пакеты. Дерево создаётся после установки пакета [abs](https://www.archlinux.org/packages/?name=abs) с помощью [pacman](/index.php/Pacman "Pacman") и последующего выполнения скрипта `abs`.

**Примечание:** Сами пакеты находятся в [svn](https://www.archlinux.org/svn/) и [git](https://projects.archlinux.org/svntogit/packages.git/) репозиториях, а скрипт `abs` скачивает их с помощью [rsync](/index.php/Rsync "Rsync").

	[PKGBUILD](/index.php/PKGBUILD_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "PKGBUILD (Русский)")

	[Bash](/index.php/Bash_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Bash (Русский)") скрипт, который содержит URL исходного кода и инструкции по компиляции и упаковыванию пакета.

	[makepkg](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)")

	Шелл команда, которая читает PKGBUILDы, автоматически скачивает и компилирует исходники и создаёт `.pkg.tar*` в зависимости от массива `PKGEXT` в `makepkg.conf`. Вы также можете использовать makepkg, чтобы собирать ваши собственные пакеты из [AUR](/index.php/AUR_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "AUR (Русский)") или других источников. Для дополнительной информации смотрите [Создание пакетов](/index.php/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2 "Создание пакетов").

	[pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)")

	pacman — это совершенно независимая программа. Он всегда используется либо программой makepkg либо вручную для установки и удаления собранных пакетов и для просмотра зависимостей.

	[AUR](/index.php/AUR_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "AUR (Русский)")

	Пользовательский репозиторий Arch — это не имеющие отношение к ABS PKGBUILDы (неподдерживаемые), которые используются программой makepkg для компиляции и упаковки программ. В отличие от дерева ABS, которое расположено на вашем локальном компьютере, AUR представлен в виде веб сайта. AUR содержит тысячи PKGBUILDов, созданных пользователями для программ, которые недоступны в качестве официальных пакетов Arch. Если вам нужно собрать пакет, которого нет в официальном дереве Arch, то вероятнее всего вы найдёте его в AUR.

## Зачем мне использовать ABS?

Система сборки Arch используется для:

*   Компиляции или перекомпиляции пакета по какой-либо причине
*   Сборки и установки новых пакетов из исходных кодов для программ, для которых ещё нет пакетов (смотрите [Создание пакетов](/index.php/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2 "Создание пакетов"))
*   Изменения существующих пакетов под ваши нужды (включение или отключение опций, наложение патчей)
*   Перестройки всей системы с использованием новых флагов компиляции "à la FreeBSD" (например с [pacbuilder](/index.php/Pacbuilder "Pacbuilder"))
*   Чистой сборки и установки вашего собственного ядра (смотрите [Компиляция ядра](/index.php/Kernels_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.9A.D0.BE.D0.BC.D0.BF.D0.B8.D0.BB.D1.8F.D1.86.D0.B8.D1.8F_.D1.8F.D0.B4.D1.80.D0.B0 "Kernels (Русский)"))
*   Получения работающих модулей ядра для вашего собственного ядра
*   Легкой компиляции и установки новой/старой/бета или девел версии Arch пакета, с помощью редактирования номера версии в PKGBUILD

ABS не является необходимой для использования в Arch Linux, но она удобна для автоматизации некоторых задач при компиляции из исходников.

## Как использовать ABS

Сборка пакетов с помощью abs состоит из следующих шагов:

1.  Установка пакета [abs](https://www.archlinux.org/packages/?name=abs) с помощью [pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)").
2.  Запуск команды `abs` с правами root для создания дерева ABS, синхронизированного с сервером Arch Linux.
3.  Копирование файлов для сборки (обычно расположенных в `/var/abs/<репозиторий>/<название_пакета>`) в каталог сборки.
4.  Переход в этот каталог, редактирование PKGBUILD (если это необходимо) и выполнение команды **makepkg**.
5.  В соответствии с инструкциями в PKGBUILD, makepkg скачает нужный tarball архив с исходным кодом, распакует его, наложит патч (если необходимо), скомпилирует в соответствии с флагами `CFLAGS`, заданными в `makepkg.conf` и наконец сожмёт собранные файлы в пакет с расширением `.pkg.tar.gz` или `.pkg.tar.xz`.
6.  Установка, заключающаяся в выполнении команды `pacman -U <файл .pkg.tar.xz>`. Удаление пакета также осуществляется с помощью pacman.

### Установка инструментов

Чтобы использовать ABS, вы должны [установить](/index.php/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C "Установить") пакет [abs](https://www.archlinux.org/packages/?name=abs).

Этот пакет включает в себя скрипты синхронизации abs, некоторые скрипты сборки и [rsync](/index.php/Rsync "Rsync") (в качестве зависимости, если он у вас ещё не установлен).

Однако, перед тем как вы сможете что-то собрать, вам также понадобятся основные инструменты сборки. Они уже подготовлены для вас в [группе пакетов](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.B3.D1.80.D1.83.D0.BF.D0.BF.D1.8B_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2 "Pacman (Русский)") [base-devel](https://www.archlinux.org/groups/x86_64/base-devel/). Эту группу можно установить с помощью pacman.

### /etc/abs.conf

Отредактируйте файл `/etc/abs.conf`, чтобы он включал в себя нужные вам репозитории.

Уберите `!` перед соответствующими репозиториями. Например:

```
REPOS=(core extra community !testing)

```

### Дерево ABS

Дерево ABS — это иерархия каталогов, синхронизируемая с SVN, расположенная в `/var/abs` и выглядит оно примерно так:

```
| -- core/
|     || -- acl/
|     ||     || -- PKGBUILD
|     || -- attr/
|     ||     || -- PKGBUILD
|     || -- abs/
|     ||     || -- PKGBUILD
|     || -- autoconf/
|     ||     || -- PKGBUILD
|     || -- ...
| -- extra/
|     || -- acpid/
|     ||     || -- PKGBUILD
|     || -- apache/
|     ||     || -- PKGBUILD
|     || -- ...
| -- community/
|     || -- ...

```

Дерево ABS имеет в точности такую же структуру, как и база данных пакетов:

*   Первый уровень вложенности: Название репозитория
*   Второй уровень вложенности: Каталоги, названные именами пакетов
*   Третий уровень вложенности: PKGBUILD (содержит информацию, необходимую для сборки пакета) и другие необходимые файлы (патчи и иные файлы, необходимые для сборки пакета)

Исходные код для пакетов не представлен в ABS каталоге. Вместо этого `PKGBUILD` содержит URL, с которого будет произведена загрузка исходных кодов когда пакет будет собираться. Поэтому размер дерева abs довольно мал.

#### Загрузка дерева ABS

Выполните:

```
# abs

```

Теперь ваше дерево ABS находится в каталоге `/var/abs`. Обратите внимание, что ветви дерева ABS были созданы в соответствии с заданными вами репозиториями в `/etc/abs.conf`.

Команду abs нужно выполнять периодически, чтобы ваше дерево было синхронизировано с официальными репозиториями. Файлы конкретного ABS пакета можно также закачать командой:

```
# abs <репозиторий>/<пакет>

```

В этом случае вам не нужно обновлять всё дерево только для того, чтобы собрать один пакет.

### /etc/makepkg.conf

Файл `/etc/makepkg.conf` программы [makepkg](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)") определяет глобальные переменные окружения и флаги компиляции, которые вы можете захотеть отредактировать если вы используете [SMP](https://en.wikipedia.org/wiki/ru:%D0%A1%D0%B8%D0%BC%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%BD%D0%B0%D1%8F_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80%D0%BD%D0%BE%D1%81%D1%82%D1%8C для дополнительной информации.)

#### Задание переменной PACKAGER в /etc/makepkg.conf

Настройка переменной `PACKAGER` в файле `/etc/makepkg.conf` является необязательным, но *настоятельно рекомендуемым* шагом. Это позволяет сделать "пометку", чтобы быстро определить, какие пакеты были собраны и/или установлены ВАМИ, а не официальным сопроводителем! Это можно легко сделать с помощью [expac](https://www.archlinux.org/packages/?name=expac):

##### Отобразить все пакеты (включая пакеты из AUR)

 `$ grep myname /etc/makepkg.conf`  `PACKAGER="myname <myemail@myserver.com>"`  `$ expac "%n %p" | grep "myname" | column -t` 
```
archey3 myname
binutils myname
gcc myname
gcc-libs myname
glibc myname
tar myname

```

##### Отобразить только пакеты из репозиториев

В этом примере отобразятся только те пакеты, которые находятся в репозиториях, заданных в `/etc/pacman.conf`:

 `$ . /etc/makepkg.conf; grep -xvFf <(pacman -Qqm) <(expac "%n\t%p" | grep "$PACKAGER$" | cut -f1)` 
```
binutils
gcc
gcc-libs
glibc
tar

```

### Создание каталога для сборки

Рекомендуется создать каталог, в котором непосредственно будет производиться компиляция; вы никогда не должны изменять дерево ABS, производя сборку в его каталогах, поскольку данные будут потеряны (перезаписаны) при каждом обновлении ABS. Хорошей практикой является использование вашего домашнего каталога, хотя некоторые пользователи Arch предпочитают создавать каталог 'local' в `/var/abs/`, которым владеет обычный пользователь.

Создайте ваш каталог для сборки, например:

```
$ mkdir -p $HOME/abs

```

Скопируйте ABS из дерева (`/var/abs/<репозиторий>/<имя_пакета>`) в ваш каталог сборки.

### Сборка пакета

В данном примере мы будем собирать пакет *slim*.

Скопируйте slim ABS из дерева ABS в каталог сборки:

```
$ cp -r /var/abs/extra/slim/ ~/abs

```

Перейдите в каталог сборки:

```
$ cd ~/abs/slim

```

Измените PKGBUILD под ваши нужды, затем выполните *makepkg* (с флагом `-s` для того, чтобы автоматически обрабатывать зависимости, необходимые на время сборки):

```
$ makepkg -s

```

**Примечание:** Прежде чем жаловаться на недостающие зависимости (во время make), не забудьте проверить, что группа [base-devel](https://www.archlinux.org/groups/x86_64/base-devel/) установлена, поскольку это подразумевается при сборке пакетов с помощью *makepkg*. Смотрите [#Установка инструментов](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.B8.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2).

Установите с правами супер пользователя:

```
# pacman -U slim-1.3.0-2-i686.pkg.tar.xz

```

Вот и всё. Вы только что собрали slim из исходных кодов и правильно установили его в вашу систему с помощью pacman. Удаление пакета также осуществляется с помощью pacman командой `pacman -R slim`.

Метод установки программ с использованием ABS предоставляет удобство, сохраняя при этом полную прозрачность и контроль над *build* и *install* функциями, включёнными в PKGBUILD.

#### fakeroot

По сути, такие же самые шаги предпринимаются при традиционном способе установки (обычно включающем шаги `./configure, make, make install`), но программа устанавливается в *fake root* окружение. (*fake root* — это просто подкаталог внутри каталога сборки, который функционирует и ведёт себя как корневой каталог системы. С помощью программы **fakeroot**, *makepkg* создаёт ненастоящий корневой каталог и устанавливает скомпилированные бинарники и необходимые файлы в него, в качестве владельца выставляя **root**.) Затем *fake root*, т.е. дерево подкаталогов, содержащее скомпилированную программу, сжимается в архив с расширением `.pkg.tar.xz`, т.е. в *пакет*. Затем, когда запускается pacman, он извлекает пакет (устанавливает его) в настоящий системный корневой каталог (`/`).

### Оставлять модифицированные пакеты

При обновлении системы, pacman затрёт изменённый вами пакет из ABS на пакет, который имеет такое же имя в официальных репозиториях. Следуйте инструкции ниже для того, чтобы этого избежать.

Впишите массив групп в PKGBUILD и добавьте пакет в группу под названием `modified`.

 `PKGBUILD`  `groups=('modified')` 

Добавьте эту группу в секцию `IgnoreGroup` в `/etc/pacman.conf`.

 `/etc/pacman.conf`  `IgnoreGroup = modified` 

Если в официальных репозиториях появится новая версия, то во время обновления системы pacman напечатает замечание, что он пропускает обновление этого пакета, поскольку он находится в секции IgnoreGroup. С этого момента изменённый пакет должен быть пересобран из ABS во избежание частичных обновлений.

## Другие инструменты

*   [pbget](http://xyne.archlinux.ca/projects/pbget/) - получение PKGBUILDов для конкретных пакетов прямо из веб интерфейса. Также работает для AUR.
*   [asp](https://github.com/falconindy/asp) - инструмент для управления сборкой из исходных кодов, использующийся для создания Arch Linux пакетов. Использует git интерфейс, что предоставляет более свежие исходные коды.